说明
只读属性用于表示实体中的一个只读的数据。只读属性主要为界面展现层设计。如果只是使用 Rafy 的领域实体进行数据访问,则可以不使用此属性。
以下代码为 Warehouse (仓库)类声明了一个名称为 FullName (全名称)的只读属性,拼接仓库编码与仓库名称的字符串后返回。
public static readonly Property<string> FullNameProperty = P<Warehouse>.RegisterReadOnly(
e => e.FullName, e => e.GetFullName(), NameProperty, CodeProperty);
public string FullName
{
get { return this.GetProperty(FullNameProperty); }
}
private string GetFullName()
{
return this.Code + "(" + this.Name + ")";
}
在使用 RegisterReadOnly 方法时,最后的两个参数分别是 FullNameProperty 只读属性依赖的两个一般属性。这里表示 FullName 是通过 Name 与 Code 两个属性计算出来的,一旦 Name、Code 属性发生改变,FullName 对应的属性变更事件也会同时发生,如果界面绑定了这个只读属性,则会自动刷新。